#include "Marcador.h"
#include "MarcadorEnemigoNullExcepcion.h"
#include <iostream>
#include <sstream>
#include <string>
#include <stdio.h>
#include <SDL.h>

using namespace std;
/**
 * Clase que representa un jugador en el juego
 */
class JugadorModelo{

	Marcador* marcadorJugador;
	Marcador* marcadorEnemigo;
    Marcador* marcadorActual;
	string nombre;
	
public:

	/**
	 * Inicializa el nombre y el marcador del jugador
	 */
	JugadorModelo(string unNombre){

		//inicializo el marcador del jugador
		this->marcadorActual = new Marcador();
        this->marcadorJugador = this->marcadorActual ; 

		//inicializo el marcador del enemigo en null
		this->marcadorEnemigo = NULL;

		//me copio el nombre
		this->nombre = unNombre;
	}

    void setNombre(string unNombre){
        this->nombre = unNombre;
        }

	/**
	 * Devuelve el nombre
	 */
	string getNombre(){
		return this->nombre;
	}

	/**
	 * Devuelve el marcador
	 */
	Marcador* getMarcadorActual(){
		return this->marcadorActual;
	}

    void setMarcadorActual(Marcador* unMarcador){
        this->marcadorActual = unMarcador;
        }

	/**
	 * Devuelve el marcador enemigo
	 */
	Marcador* getMarcadorEnemigo(){
		return this->marcadorEnemigo;
	}

    Marcador* getMarcadorDelJugador(){
        return this->marcadorJugador;
        
        }

	/**
	 * Registra el marcador enemigo
	 */
	Marcador* setMarcadorEnemigo(Marcador* marcadorEnemigo){
		this->marcadorEnemigo = marcadorEnemigo;
	}

    void cambiarAMarcadorPropio(){
        this->marcadorActual = this->marcadorJugador;
    }
	/**
	 * Libera la memoria reservada para guardar el marcador y el nombre del jugador
	 */
	~JugadorModelo(){
		delete this->marcadorJugador;
	}

};